#ifndef LOGGER_H_
#define LOGGER_H_

#include <stdbool.h>
#include <stdio.h>
#include <err.h>

/*
  Logging macros
 */
#define check_system_error(function_call, message)      \
        if (function_call != 0) {                       \
                log_system_error(message);              \
        }

#define log_system_error(message)               \
        do {                                    \
                perror(message);                \
                _Exit(EXIT_FAILURE);            \
        } while(false);

#define log_error(format, ...)                  \
        do {                                    \
                warnx(format, ##__VA_ARGS__);   \
                _Exit(EXIT_FAILURE);            \
        } while(false);

#define log_system_warning(format, ...)         \
        do {                                    \
                warn(format, ##__VA_ARGS__);    \
        } while(false);

#endif /* LOGGER_H_ */
